1. Field of the Invention
The present invention relates to a music synthesis system. In particular, the present invention relates to a wavetable synthesis system for synthesizing a corresponding digital music output according to commands from a music data file.
2. Description of the Prior Art
Referring to FIG. 1, FIG. 1 is a schematic diagram of a conventional music synthesis system 10. The music synthesis system comprises a sequencer 12, a wavetable 14, a memory 15, and a synthesizer 16. The music synthesis system 10 is used for synthesizing a corresponding digital music output 20 according to commands specified in a music data file 18. The music data file 18 comprises a plurality of music data units (19a, 19b, . . . ). Each music data unit records related information of each music segment of the music.
As shown in FIG. 1, the wavetable 14 is used for pre-storing a plurality of digital sampling data (22a, 22b, . . . ). The memory 15 is used for storing the wavetable 14. The wavetable 14 can originally be stored in the memory 15, or originally be stored in a memory external to the music synthesis system 10 (such as in other memory, optical storage medium, or even network . . . etc.) and then be read into the memory 15. The sequencer 12 is used for receiving the music data file 18 and generating a result 24. The synthesizer 16 is used for selecting the required digital sampling data from the wavetable 14 according to the sequencer's result 24, so as to synthesize the digital music output 20. Each digital sampling data represents the sampling data of a piece of music generated by a specific musical instrument at a predetermined pitch. For example, the digital sampling data 22a represents the sampling data of the music generated by a piano at pitch C, and the digital sampling data 22b represents the sampling data of the music generated by a violin at pitch G.
Referring to FIG. 2, FIG. 2 is a waveform diagram of the digital sampling data 22a shown in FIG. 1. Each digital sampling data in FIG. 1 represents the sampling data of the music generated by a specific musical instrument at a predetermined pitch, and the sampling data is sampled for a predetermined duration (T) and then stored in the wavetable 14. As shown in FIG. 2, a duration (T) of the sampling data is extracted from the digital sampling data 22a and then stored in the wavetable 14. A looping point 32 is marked to serve as an important basis when requests are made as to the synthesis of different durations of the digital sampling data 22a. In general, the digital sampling data (22a, 22b, . . . ) are stored without performing data compression because the compression of the digital sampling data might cause the looping point 32 to disappear. As shown in FIG. 2, the compression of the digital sampling data 22a is done by selecting a predetermined amount of compression points 34 from the digital sampling data 22a and only storing these compression points 34, so as to reduce the data size. The decompression procedure could be, for example, performing interpolation calculation using the compression points 34 so as to restore the original digital sampling data 22a. However, the mark of the looping point 32 may possibly disappear during the compression and decompression procedures. Therefore, in many documents, even the manual of the MIDI 1.0 does not recommend to compress the digital sampling data (22a, 22b, . . . ).
In conventional music synthesis system 10, the memory 15 for storing the wavetable 14 is usually the flash memory or ROM. The cost for storing the uncompressed wavetable 14 in the memory 15 is usually one of the most significant part in the total cost. For reducing the cost of storing the wavetable 14, it is usually for the prior to store only the sampling data at one or two predetermined pitches of a specific musical instrument. For example, for the sampling data of the music of a piano, the wavetable 14 only stores the digital sampling data 22a representing the piano at pitch C. Therefore, when the music synthesis system 10 shown in FIG. 1 synthesizes the digital music output 20, the synthesizer 16 is required to perform pitch-shifting to the selected digital sampling data, so as to generate the digital sampling data at other pitches which are not stored for the specific musical instrument.
Referring to FIG. 3, FIG. 3 is a schematic diagram when the synthesizer 16 shown in FIG. 1 performs pitch-shifting. For example, if the digital music output 20 requires piano music at pitch C, D, F, and G, but the wavetable 14 only stores the digital sampling data 22a of the piano at pitch C, the synthesizer 16 will perform pitch-shifting on the digital sampling data 22a, so as to calculate the digital sampling data (22p, 22q, and 22r). Moreover, the music synthesis system 10 performs pitch-shifting in real-time during the process of synthesizing the digital music output 20. For example, if the music data unit 19a and another music data unit 19b both comprise the music of piano at pitch F, the synthesizer 16 will need to perform pitch-shifting once when synthesizing the music data unit 19a according to the commands specified in the music data file 18, and when synthesizing the music data unit 19b, the synthesizer 16 still needs to perform pitch-shifting once more. Therefore, a large number of repeated calculations of pitch-shifting could be a heavy processing load to conventional music synthesis system 10.
According to the above, conventional music synthesis system 10 has the disadvantages of high storing cost and high calculating cost.